import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class RedisTest {
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()) {

        }
    }

    //zadd 和 zrange
    public static void testZaddAndZrange(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zrange("zset", 0, -1));
    }

    //zrem 和 zcard
    public static void testZremAndZcard(Jedis jedis) {

        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");

        jedis.zrem("zset", "a");

        System.out.println(jedis.zcard("zset"));
    }

    //zcount
    public static void testZcount(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zcount("zset", 1, 2));
    }

    //zpopmax 和 zpopmin
    public static void testZpopmaxAndZpopmin(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zpopmax("zset"));
        System.out.println(jedis.zpopmin("zset"));
    }

    //zrank
    public static void testZrank(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zrank("zset", "a"));
    }

    //zscore
    public static void testZscore(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zscore("zset", "a"));
    }

    //zincrby
    public static void testZincrby(Jedis jedis) {
        jedis.zadd("zset", 1, "a");
        jedis.zadd("zset", 2, "b");
        jedis.zadd("zset", 3, "c");
        System.out.println(jedis.zincrby("zset", 1, "a"));
    }

    //zinterstore
    public static void testZinterstore(Jedis jedis) {
        jedis.zadd("zset1", 1, "a");
        jedis.zadd("zset1", 2, "b");
        jedis.zadd("zset1", 3, "c");
        jedis.zadd("zset2", 1, "a");
        jedis.zadd("zset2", 2, "b");
        jedis.zadd("zset2", 3, "c");
        System.out.println(jedis.zinterstore("zset3", "zset1", "zset2"));
    }

    //zunionstore
    public static void testZunionstore(Jedis jedis) {
        jedis.zadd("zset1", 1, "a");
        jedis.zadd("zset1", 2, "b");
        jedis.zadd("zset1", 3, "c");
        jedis.zadd("zset2", 1, "a");
        jedis.zadd("zset2", 2, "b");
        jedis.zadd("zset2", 3, "c");
        System.out.println(jedis.zunionstore("zset3", "zset1", "zset2"));
    }
}